#include <unistd.h>
#include <stdio.h>
#include<sys/types.h>

int main(int argc, char const *argv[])
{
    printf("mian 进程(%d)开始执行\n", getpid());

    pid_t pid = fork();

    if (pid == 0)   // 子进程
    {
        printf("子进程(%d)开始执行\n", getpid());

        // 通过execve()函数执行另一个程序
        char *path = "other";
        char *argv[] = {path, "zw", NULL};  // 要求最后一个元素为NULL
        char *envp[] = {NULL};  // 环境变量数组，最后一个元素为NULL
        execve(path, argv, envp);
        printf("execve error\n");
    }else if (pid > 0)  // 父进程
    {
        printf("父进程(%d)开始执行\n", getpid());
    }
    
    printf("进程(%d)结束执行\n", getpid());

    return 0;
}
